import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class VirtualCharacter {
  @PrimaryGeneratedColumn()
  id: number;

  // 虚拟人ID
  @Column('varchar', { length: 200, nullable: false })
  characterId: string;

  // 关联的用户ID
  @Column('varchar', { length: 200, nullable: false })
  userId: string;

  // 性别 (0: 未知, 1: 男, 2: 女)
  @Column('tinyint', { default: 0 })
  gender: number;

  // 头像URL
  @Column('text')
  avatarUrl: string;

  // 昵称
  @Column('varchar', { length: 100 })
  nickName: string;

  // 虚拟人声音URL
  @Column('text', { nullable: true })
  voiceUrl: string;

  // 与用户的关系 (如：闺蜜、男朋友、知心姐姐等)
  @Column('varchar', { length: 100 })
  relationship: string;

  // 对用户的称呼 (如：亲爱的、宝贝等)
  @Column('varchar', { length: 100 })
  callUser: string;

  // 角色人设
  @Column('text')
  characterSetting: string;

  // 开场白
  @Column('text', { nullable: true, default: '' })
  openingRemarks: string;

  // 台词示例
  @Column('text', { nullable: true, default: '' })
  dialogueExamples: string;

  // 是否启用
  @Column('boolean', { default: true })
  isActive: boolean;

  // 创建时间
  @Column('timestamp', { default: () => 'CURRENT_TIMESTAMP' })
  createTime: Date;

  // 更新时间
  @Column('timestamp', { 
    default: () => 'CURRENT_TIMESTAMP',
    onUpdate: 'CURRENT_TIMESTAMP'
  })
  updateTime: Date;
} 